package com.example.compose.view.ui

import android.content.Intent
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.width
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.lazy.items
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.AccountCircle
import androidx.compose.material3.Button
import androidx.compose.material3.ButtonDefaults
import androidx.compose.material3.Icon
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.unit.dp
import coil3.util.CoilUtils.result
import com.example.compose.ListItem
import com.example.compose.MainActivity

/**
 * @Author jiangKunKun
 * @CreateDate 2025/8/22
 * @Description
 * @SpittingGrooves
 */
class ViewActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        // 获取从 MainActivity 传递的参数
        val selectedItem = intent.getStringExtra("SELECTED_ITEM") ?: "未知项目"

        setContent {
            Column {
                // 返回 icon
                Button(
                    onClick = {  // 返回数据给 MainActivity
                        intent.putExtra("RESULT_DATA", "来自 $selectedItem 的返回数据")
                        setResult(RESULT_OK, intent)
                        finish()
                    },
                    colors = ButtonDefaults.buttonColors(Color.Blue)
                ) {
                    Icon(
                        imageVector = Icons.Default.AccountCircle,
                        contentDescription = "返回",
                        tint = Color.Gray
                    )
                    Spacer(modifier = Modifier.width(8.dp))
                    Text("返回", color = Color.White)
                }
                // 数据源（提前定义好）
                val items = mutableListOf<String>()
                // 基础布局组件
                // p1
                items.add("Box") // 简单的容器布局
                items.add("Column") // 垂直布局容器
                items.add("Row") // 水平布局容器

                items.add("Text") // 文本显示
                items.add("Button") // 按钮
                items.add("TextField") // 文本输入框
                items.add("Image") // 图片显示

                items.add("Spacer") // 间隔组件
                items.add("Divider") // 分割线
                // p2
                items.add("Checkbox") // 复选框
                items.add("RadioButton") // 单选按钮
                items.add("Switch") // 开关按钮

                items.add("Card") // 卡片容器
                items.add("Surface") // 表面容器
                items.add("Scaffold") // 页面结构布局

                items.add("LazyColumn") // 垂直列表
                items.add("LazyRow") // 水平列表
                items.add("LazyVerticalGrid") // 垂直网格
                items.add("ScrollableRow/Column") // 可滚动布局

                // p3
                items.add("TopAppBar") // 顶部应用栏
                items.add("BottomNavigation") // 底部导航
                items.add("NavigationRail") // 侧边导航栏

                items.add("LinearProgressIndicator") // 线性进度
                items.add("CircularProgressIndicator") // 圆形进度
                items.add("Snackbar") // 底部提示消息

                items.add("AlertDialog") // 警告对话框
                items.add("ModalBottomSheetLayout") // 模态底部表单
                items.add("DropdownMenu") // 下拉菜单

                items.add("Slider") // 滑动条
                items.add("RangeSlider") // 范围滑动条
                items.add("ExposedDropdownMenuBox") // 暴露下拉菜单
                items.add("TabRow") // 标签页

                // p4
                items.add("DatePicker") // 日期选择器
                items.add("TimePicker") // 时间选择器

                items.add("Icon") // 图标显示
                items.add("IconButton") // 图标按钮

                items.add("Swipeable") // 可滑动组件
                items.add("AnimatedVisibility") // 动画可见性

                // === 首页：显示列表 ===
                Column(modifier = Modifier.fillMaxSize()) {
                    LazyColumn(modifier = Modifier.fillMaxSize()) {
                        items(items) { item ->
                            ListItem(
                                text = item,
                                onClick = {
                                    var intent: Intent? = null
                                    if (item == "Box") {
                                        intent = Intent(this@ViewActivity, TheFirstStageActivity::class.java)
                                    }

                                    startActivity(intent)
                                },
                                modifier = Modifier.padding(horizontal = 16.dp, vertical = 8.dp)
                            )
                        }
                    }
                }
            }

        }
    }
}